home *** CD-ROM | disk | FTP | other *** search
/ Disc to the Future 2 / Disc to the Future Part II Programmer's Reference (Wayzata Technology)(6013)(1992).bin / MAC / THINKC / 4_0 / 3DMAZE / DRAWMAZE.C < prev    next >
Text File  |  1991-02-16  |  2KB  |  84 lines

  1. /******************************************************
  2. *
  3. *    DrawMaze.c  v. 1.0
  4. *    1991 By Mark Frohnmayer
  5. *
  6. *    NOTE - This header must appear at the beginning of all 3-D maze files!
  7. *
  8. *    If you have any comments or recommended modifications for this code,
  9. *    email me on America On-Line at "Mark Frohn" or snail mail me at:
  10. *
  11. *            Mark Frohnmayer
  12. *            2875 Baker Blvd
  13. *            Eugene, OR 97403 
  14. *
  15. *    If you use this code in any program, commercial or otherwise, give
  16. *    me credit in the about box.
  17. *
  18. *    THIS CODE MAY NOT BE SOLD OR DISTRIBUTED AT COST OR AS PART OF SOLD
  19. *    PACKAGE WITHOUT PRIOR WRITTEN CONSENT OF THE AUTHOR.
  20. *
  21. ******************************************************/
  22.  
  23. #include "MazeData.h"
  24.  
  25. extern WindowPtr MyWindow;
  26.  
  27. void DrawMaze()
  28. {
  29.     register int i;
  30.     CopyBits(&(MazeImage[0]), &(MazeImage[6]), &MazeRect, 
  31.         &MazeRect, srcCopy, 0L);
  32.     for(i = 0; i < 5; i++) {
  33.         if(uview.rows[i][0]) {
  34.             CopyBits(&(MazeImage[1]), &(MazeImage[6]), &viewRects[i], 
  35.                 &viewRects[i], srcCopy, 0L);
  36.         }
  37.     }
  38.     if(uview.rows[0][1]) {
  39.         CopyBits(&(MazeImage[4]), &(MazeImage[6]), &viewRects[0], 
  40.             &viewRects[0], srcCopy, 0L);
  41.     }
  42.     if(uview.rows[4][1]) {
  43.         CopyBits(&(MazeImage[4]), &(MazeImage[6]), &viewRects[4], 
  44.             &viewRects[4], srcCopy, 0L);
  45.     }
  46.     if(uview.rows[1][1]) {
  47.         CopyBits(&(MazeImage[5]), &(MazeImage[6]), &viewRects[12], 
  48.             &viewRects[12], srcCopy, 0L);
  49.     }
  50.     if(uview.rows[3][1]) {
  51.         CopyBits(&(MazeImage[5]), &(MazeImage[6]), &viewRects[13], 
  52.             &viewRects[13], srcCopy, 0L);
  53.     }
  54.     for(i=1; i<4;i++) {
  55.         if(uview.rows[i][1]) {
  56.             CopyBits(&(MazeImage[2]), &(MazeImage[6]), &viewRects[i+4], 
  57.                 &viewRects[i+4], srcCopy, 0L);
  58.         }
  59.     }
  60.     for(i=1; i<4;i+=2) {
  61.         if(uview.rows[i][2]) {
  62.             CopyBits(&(MazeImage[3]), &(MazeImage[6]), &viewRects[i+7], 
  63.                 &viewRects[i+7], srcCopy, 0L);
  64.             CopyBits(&(MazeImage[5]), &(MazeImage[6]), &viewRects[11 + (i-1) / 2 * 3], 
  65.                 &viewRects[11 + (i-1) / 2 * 3], srcCopy, 0L);
  66.         }
  67.     
  68.     }
  69.     if(uview.rows[2][2]) {
  70.         CopyBits(&(MazeImage[3]), &MazeImage[6], &viewRects[9], 
  71.             &viewRects[9], srcCopy, 0L);
  72.     }
  73.     if(uview.rows[1][3]) {
  74.         CopyBits(&(MazeImage[5]), &MazeImage[6], &viewRects[8], 
  75.             &viewRects[8], srcCopy, 0L);
  76.     }
  77.     if(uview.rows[3][3]) {
  78.         CopyBits(&(MazeImage[5]), &MazeImage[6], &viewRects[10], 
  79.             &viewRects[10], srcCopy, 0L);
  80.     }
  81.     CopyBits(&(MazeImage[6]), &MyWindow->portBits, &MazeRect, 
  82.         &MazeRect, srcCopy, 0L);
  83. }
  84.